In recent years, most of information processing devices are typically coupled to networks. Therefore, networks have become social infrastructures that are vital as the foundation of the social life and economic activity.
A network is constituted by packet processing devices such as a switch, a router, and the like. Packet processing devices other than a switch and a router include a firewall, a gateway, and a load balancer.
Recently, various communication protocols and communication standards (hereinafter collectively referred to as “protocols” unless otherwise specified) have been developed. Due to the development of the various protocols, the number of communication protocols that are to be compatible with networks is also increased. Therefore, there is a tendency in which the number of functions provided in a packet processing device is also increased.
In the case in which the functions are added to the packet processing device, when a dedicated hardware for each of the functions is provided in the packet processing device, manufacturing cost is greatly increased, and a developing time period is also increased. Due to an increase in a quantity of hardware, the power consumption is also increased. Therefore, in a quantity of hardware, the power consumption is also increased. Therefore, in the packet processing device, functions may be typically added by software processing.
Recently, virtualization of servers has been promoted, and network function virtualization (NFV) is performed by which a network function is achieved using software on a general-purpose computer in a data center. In such NFV, the function of a communication device used for a network is provided as software. In addition, the software is executed on a virtualized operating system (OS) of the general-purpose computer. Due to application of such NFV, a plurality of communication devices of different types may be integrated into a single general-purpose computer. In addition, an increase and decrease of certain functions, a change in the configuration, and the like may be dealt with flexibly.
A processing time desired for software processing is long as compared with a processing time desired for hardware processing. Therefore, typically, in the packet processing device, a basic function is executed by hardware, and functions other than the basic function are executed by software processing. Therefore, the packet processing device typically includes a part that executes processing by hardware (hereinafter referred to as “hardware processing unit”) and a part that executes processing by software (hereinafter referred to as “software processing unit”) for packet processing. Due to such a hardware processing unit, an average processing time desired for the packet processing may be suppressed.
In the packet processing device, typically, a processing content for a received packet is determined using a data structure called a table. Each entry of the table stores identification information such as the destination address and the packet type that are included in the packet, a processing content that corresponds to the packet identified by the identification information (transfer, discard, and processing, and the like of a packet), processing information such as parameters (output port specification, data desired for the processing, and the like). As a result, the packet processing device searches the table using identification information included in the received packet as a key, and determines and executes processing that is to be executed for the received packet.
In the above-described packet processing device including the hardware processing unit and the software processing unit, typically, the hardware processing unit determines whether processing of a packet is executed in the software processing unit. When the packet the processing of which is to be executed in the software processing unit has been received, the received packet is transferred to the software processing unit. The software processing unit receives the packet from the hardware processing unit, and performs the table search to determine a processing content for the received packet. Here, the table search and the checking of the packet content are performed in the hardware processing unit and the software processing unit. Specifically, for the software, calculation processing of a hash value and verification processing of data that are desired for the table search are heavy. In order to execute packet processing quickly in the packet processing device, it is desirable that a processing amount of table search by the software processing unit is reduced as much as possible.
In a system and a method described in Japanese National Publication of International Patent Application 2007-527167, audio, video, and other services that are sensitive to delays are dealt with by providing a wireless communication system in which a part of a media access control (MAC) function is assigned to a hardware section of a MAC layer, and a part of the MAC function is assigned to a software section of the MAC layer. For example, a response for a received packet having a larger time sensitivity related to quality of service (QoS) may be identified and processed totally in the hardware section of the MAC layer in order to reduce the delay. On the other hand, a MAC processing step in which a time sensitivity is not prioritized may be executed in the software portion of the MAC layer.